Permanent magnet synchronous motors (PMSMs) are a popular choice among device manufacturers because of their high power density, fast dynamic response, and high efficiency in comparison with other motors in their category. With PMSMs, the rotor field speed must be equal to the stator (armature) field speed (i.e., synchronous). The loss of synchronization between the rotor and stator fields can cause the motor to halt, and so knowing rotor speed and position can be critical in avoiding control failures in such motors. Conventional approaches to determining position and speed of rotors include the use of encoders, such as resolver encoders, incremental ABZ encoders, absolute position encoders, and sin/cos encoders, but these increase costs and space requirements. Hall effect sensors are sometimes used, but these increase costs and have low reliability. Three-phase motor terminal voltage sensing circuits can also be used, but these place a demand on the resources of the controller used to operate the motor. For example, a traditional control method involves driving the stator in a six-step process to generate oscillations on the produced torque. In such six-step control, a pair of windings is energized until the rotor reaches the next position, and then the motor is commutated to the next step. Hall sensors can be used to determine the rotor position to electronically commutate the motor.
To keep costs down, motors without encoders and Hall sensors—referred to as “sensorless” motors”—are often used. To compensate for the lack of these sensors, sensorless motors may implement algorithms that use the back-EMF (back electromotive force) generated in the stator winding to determine rotor position. Other sensorless motors use a speed observer to estimate rotor speed and position during driving. In some applications, however, a motor may be able to rotate even after its controller ceases operation. That is, the motor may be rotated by an outside load torque, or the motor may keep rotating as a result of its own inertia after the controller has stopped operating the motor. Such motors generally do not have brakes that stop the motor from rotating once it is no longer being driven. When the rotor is able to rotate on its own before startup (i.e., is susceptible to windmilling), the controller does not know the rotor's initial position and speed at time of startup. Although sensorless motors may be able to use back-EMF or a speed observer to determine or estimate rotor position and/or speed while the motor is driven, these approaches do not provide information on initial speed and position of windmilling motors before the motor has started up.
Some sensorless motors use field-oriented control (FOC) vector algorithms without measuring the motor speed, position, torque, and voltage. This is common in such applications as air conditioning units, ceiling fans, pumps, electric bicycles, hand dryers, wind power generators, and unmanned aerial vehicles like drones. A motor controller/microcontroller (“MCU”) and inverter is often used to drive such PMSMs. Because the rotors of these motors may have an initial “free-running” speed before the controller starts the motor, the initial free-running speed and rotor position are unknown to the controller/MCU. This makes it difficult to run the motor smoothly, and it has reduced the applicability of sensorless FOC for PMSMs.
Effective control of PMSMs requires knowledge of the initial position and speed of the PMSM at time of motor startup. Current systems use encoders or Hall sensors to measure speed/position, or additional sensing circuitry to measure motor phase voltages; these make the system more complex and expensive. What is needed is an economical method and system for estimating position and/or speed of a PMSM before startup when such information is not available from sensor readings.